import std.stdio;
import std.getopt;

import bindbc.sdl;

// import MGameLoad;
import MGameUpdate; //加载游戏运行相关函数

// import bindbc.sdl.codegen;
// import bindbc.sdl.config;




void main(string[] argv)
{

	string inputstr;																		//
	ubyte gamelevel=0;																		//定义存储外部参数的变量
	getopt(argv,std.getopt.config.bundling,"input|i",&inputstr,"level|l",&gamelevel);		//获得外部参数 -i 为检测输入的字符串， -l 为选择关卡
	if(inputstr != inputstr.init){ 															//
		writeln(inputstr);																	//
	}																						//

	writefln("start at level %d (default = 0)",gamelevel);									//输出关卡信息

	loadSDL();																				//
	loadSDLNet();																			//
	loadSDLImage();																			//加载SDL库的相关模块
	loadSDLTTF();																			//
	loadSDLMixer();																			//

	SDL_Init(SDL_INIT_EVERYTHING);															//初始化SDL

	SDL_Window * win1= SDL_CreateWindow("窗口", 
	SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED, 
	600, 600, 
	SDL_WINDOW_RESIZABLE);																	//打开一个窗口

	FGameLoad(gamelevel);																	//根据关卡参数加载，默认为主菜单

    SDL_Event event1;	//设置事件变量

    while (1) {
        if(SDL_PollEvent(&event1)){								//
            if(event1.type==SDL_QUIT){							//判断是否为退出事件
                break;											//
            }
            SDL_PushEvent(&event1);								//如果不是退出事件，将其塞回，交由其他函数处理
        }
		FGameUpdate();											//更新游戏
    }
    // SDL_Delay(10000);

    SDL_DestroyWindow(win1);									//销毁窗口
	SDL_Quit();													//退出游戏
}
